home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / logs / logbook / logadd.prg < prev    next >
Text File  |  1990-05-04  |  6KB  |  196 lines

  1. *:*********************************************************************
  2. *:
  3. *:        Program: LOGADD.PRG
  4. *:
  5. *:         System: PC-HAM Logbook
  6. *:         Author: Joe Kasser G3ZCZ
  7. *:      Copyright (c) 1990, Joe Kasser
  8. *:  Last modified: 05/04/90     12:53
  9. *:
  10. *:      Called by: LOGFUNCT.PRG                  
  11. *:
  12. *:           Uses: &LOGBOOK.DBF   
  13. *:
  14. *:        Indexes: &LOGNDX
  15. *:
  16. *:      Documented 05/04/90 at 13:49                SNAP!  version 3.12f
  17. *:*********************************************************************
  18. * IF YOU CHANGE THE STRUCTURE OF THE DATABASE TO INCREASE THE
  19. *WIDTH OF THE COMMENTS, MODIFY THE PROGRAM AS SHOWN BELOW
  20.  
  21. ACCEPT 'Are you running this in real TIME (Y/N) ? ' TO rtf
  22. IF rtf = 'Y'
  23.    STORE '9999' TO otime
  24.    STORE ' ' TO dummy
  25. ENDIF
  26.  
  27. USE &logbook
  28. STORE .t. TO callflag
  29. GOTO BOTTOM
  30. STORE CALL TO lastcall
  31. STORE RECNO() TO lastentry
  32.  
  33. *initialise new variables
  34. STORE DATE TO ndate
  35. STORE TIME TO ntime
  36. STORE band TO nband
  37. STORE Power TO npower
  38. STORE mode TO nmode
  39. STORE rx TO nrx
  40. STORE tx TO ntx
  41.  
  42. SET INDEX TO &logndx
  43. CLEAR
  44. *MAIN LOOP
  45. DO WHILE callflag
  46.    STORE "-" TO nqslsent
  47.    STORE "-" TO nqslrx
  48.    STORE "          " TO ncall
  49.    * CHANGE THE LENGTH OF THE SPACES BETWEEN THE " " ON THE NEXT LINE
  50.    * IF YOU CHANGE THE WIDTH OF THE COMMENTS here it is set to 10
  51.    STORE "          " TO ncomments
  52.    STORE " " TO logflag
  53.    STORE .t. TO dataflag
  54.    
  55.    DO WHILE dataflag
  56.       USE &logbook
  57.       GOTO BOTTOM
  58.       IF RECNO() > 14
  59.          SKIP -14
  60.       ELSE
  61.          GOTO TOP
  62.       ENDIF
  63.       CLEAR
  64.       SET COLOR TO W+/R,W+/RB,BG+
  65.       @ 1,21  SAY 'PREVIOUS ENTRIES IN LOG, ARE'
  66.       ?
  67.       @ 3,1  SAY "    ENTRY  DATE    TIME    CALL   BAND  PWR MODE  RX  TX "
  68.       @ 3,58 SAY "S R  COMMENTS"
  69.       SET COLOR TO GR+/B,W+/RB,BG+
  70.       
  71.       DO WHILE .not. EOF()
  72.          ? RECNO(),DATE,TIME,CALL,band,Power,mode,rx,tx,qslsent,qslrx,comments
  73.          SKIP
  74.       ENDDO
  75.       SET INDEX TO &logndx
  76.       IF rtf = 'Y'
  77.          *      DO REALTIME
  78.          ntime = TIME()
  79.          ndate = DTOC(DATE())
  80.          ndate = SUBSTR(ndate,7, 2) + '/' + SUBSTR(ndate,1,5)
  81.          ntime = SUBSTR(ntime,1,2) + SUBSTR(ntime,4,2)
  82.       ENDIF
  83.       *      @ 19,1  SAY lastentry
  84.       *      @ 19,12 SAY "LAST CONTACT WAS WITH "
  85.       *      @ 19,35 SAY lastcall
  86.       
  87.       @ 21,3  SAY "DATE    TIME    CALL   BAND  PWR MODE  RX  TX"
  88.       @ 21,49 SAY "S R  COMMENTS"
  89.       @ 23,1  SAY "QRU (*THL)"
  90.       
  91.       @ 22,1  GET ndate
  92.       @ 22,11 GET ntime
  93.       @ 22,16 GET ncall
  94.       @ 22,27 GET nband
  95.       @ 22,31 GET npower
  96.       @ 22,36 GET nmode
  97.       @ 22,41 GET nrx
  98.       @ 22,45 GET ntx
  99.       @ 22,49 GET nqslsent
  100.       @ 22,51 GET nqslrx
  101.       @ 22,53 GET ncomments
  102.       @ 23,13 GET logflag
  103.       READ
  104.       
  105.       DO CASE
  106.       CASE logflag = 'H'
  107.          GOTO TOP
  108.          STORE 1 TO linecount
  109.          IF SUBSTR(ncall,1) <> ' '
  110.             STORE TRIM(ncall) TO fcall
  111.             FIND &fcall
  112.             IF (EOF() .or. BOF())
  113.                CLEAR
  114.                SET COLOR TO W+/R,W+/RB,BG+
  115.                @ 5,1 SAY ncall
  116.                @ 5,12 SAY "Does not appear to be in the log"
  117.                WAIT
  118.                CLEAR
  119.                SET COLOR TO GR+/B,W+/RB,BG+
  120.             ELSE
  121.                DO WHILE  CALL = fcall .and. (.not. EOF())
  122.                   IF linecount = 1
  123.                      CLEAR
  124.                      SET COLOR TO W+/R,W+/RB,BG+
  125.                      @ 1,21  SAY 'PREVIOUS ENTRIES IN LOG, ARE'
  126.                      
  127.                      @ 3,1  SAY "    ENTRY  DATE    TIME    CALL   BAND  PWR MODE  RX  TX "
  128.                      @ 3,58 SAY "S R  COMMENTS"
  129.                      SET COLOR TO GR+/B,W+/RB,BG+
  130.                   ENDIF
  131.                   ? RECNO(),DATE,TIME,CALL,band,Power,mode,rx,tx,qslsent,qslrx,comments
  132.                   
  133.                   STORE linecount + 1 TO linecount
  134.                   IF linecount = 20
  135.                      ?
  136.                      WAIT
  137.                      STORE 1 TO linecount
  138.                   ENDIF
  139.                   SKIP
  140.                ENDDO
  141.                ?
  142.                WAIT
  143.                IF linecount > 16
  144.                   CLEAR
  145.                ENDIF
  146.             ENDIF
  147.          ELSE
  148.             ? 'ERROR Blank Call'
  149.          ENDIF
  150.          
  151.       CASE  logflag = 'L'
  152.          *LOG ENTRY
  153.          APPEND BLANK
  154.          STORE .F. TO dataflag
  155.          REPLACE qslsent WITH nqslsent
  156.          REPLACE qslrx WITH nqslrx
  157.          REPLACE DATE WITH ndate
  158.          REPLACE TIME WITH ntime
  159.          REPLACE CALL WITH ncall
  160.          REPLACE band WITH nband
  161.          REPLACE Power WITH npower
  162.          REPLACE mode WITH nmode
  163.          REPLACE rx WITH nrx
  164.          REPLACE tx WITH ntx
  165.          REPLACE comments WITH ncomments
  166.          STORE CALL TO lastcall
  167.          STORE RECNO() TO lastentry
  168.          STORE "          " TO ncall
  169.          STORE "          " TO ncomments
  170.          
  171.       CASE logflag = "*"
  172.          STORE .F. TO callflag
  173.          STORE .F. TO dataflag
  174.          
  175.       CASE logflag = 'T'
  176.          IF rtf = 'Y'
  177.             ndate = DTOC(DATE())
  178.             ndate = SUBSTR(ndate,7, 2) + '/' + SUBSTR(ndate,1,5)
  179.             ntime = TIME()
  180.             ntime = SUBSTR(ntime,1,2) + SUBSTR(ntime,4,2)
  181.          ENDIF
  182.          @ 22,1 SAY ndate
  183.          @ 22,11 SAY ntime
  184.       ENDCASE
  185.       *      ENDIF
  186.    ENDDO
  187. ENDDO
  188. USE
  189. * GET READY TO EXIT
  190. RELEASE lastcall,lastentry,ndate,ntime,ncall,nband,npower,nmode
  191. RELEASE nqslsent,nqslrx,nrx,ntx,ncomments,fcall,linecount,fdate
  192. RELEASE otime,rtf,mtime,cpointer,dummy,hour,MIN,mm,dd,yy,ndate
  193. RELEASE callflag,dataflag,logflag
  194. RETURN
  195. *: EOF: LOGADD.PRG
  196.